#!/usr/bin/env python3
"""
简单的开发服务器 - 用于预览Astro项目
注意：这只是一个临时解决方案，实际开发请使用 npm run dev
"""

import http.server
import socketserver
import webbrowser
import os
import sys
from pathlib import Path

# 设置端口
PORT = 4321

# 切换到项目目录
project_dir = Path(__file__).parent
os.chdir(project_dir)

print("=" * 50)
print("Kiyomizu-dera Temple - Astro Project")
print("=" * 50)
print()
print("⚠️  注意：这是一个临时开发服务器")
print("   实际开发请安装Node.js并使用：")
print("   npm install && npm run dev")
print()
print("📁 项目结构：")
print("   src/pages/index.astro     -> 主页")
print("   src/pages/news/index.astro -> 新闻列表")
print("   src/pages/news/[slug].astro -> 新闻详情")
print()
print("🎨 组件：")
print("   src/layouts/BaseLayout.astro -> 基础布局")
print("   src/components/NewsItem.astro -> 新闻项组件")
print()
print("📦 静态资源：")
print("   public/css/style.css     -> 主样式")
print("   public/fix.css           -> 修复样式")
print("   public/img/              -> 图片资源")
print()


# 创建HTTP服务器
class AstroDevHandler(http.server.SimpleHTTPRequestHandler):
    def __init__(self, *args, **kwargs):
        # 检查dist目录是否存在，如果不存在则使用public目录
        dist_dir = project_dir / "dist"
        serve_dir = dist_dir if dist_dir.exists() else project_dir / "public"
        super().__init__(*args, directory=str(serve_dir), **kwargs)

    def end_headers(self):
        self.send_header("Cache-Control", "no-cache, no-store, must-revalidate")
        self.send_header("Pragma", "no-cache")
        self.send_header("Expires", "0")
        super().end_headers()


httpd = socketserver.TCPServer(("", PORT), AstroDevHandler)

print(f"🚀 开发服务器启动在端口 {PORT}")
print(f"🌐 访问地址: http://localhost:{PORT}")
print()
print("📄 可用页面：")
print(f"   主页: http://localhost:{PORT}/")
print(f"   测试: http://localhost:{PORT}/index.html (原版)")
print()
print("💡 提示：")
print("   - 这个服务器只能提供静态文件")
print("   - Astro的动态功能需要正式的开发环境")
print("   - 要体验完整功能，请安装Node.js")
print()
print("按 Ctrl+C 停止服务器")
print("=" * 50)

try:
    # 自动打开浏览器
    webbrowser.open(f"http://localhost:{PORT}")
    # 启动服务器
    httpd.serve_forever()
except KeyboardInterrupt:
    print("\n🛑 服务器已停止")
    httpd.shutdown()
